package 剑指offer;

import java.util.Scanner;

/** 

* @author ：soulstones
* @version ：2019年9月30日 下午9:34:08 
* @Description：
* 
一只青蛙一次可以跳上1级台阶，也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法
（先后次序不同算不同的结果）。
*/
public class $8跳台阶 {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int n = scanner.nextInt();
		System.out.println(JumpFloor(n));
	}
	
	//不就是变相的斐波那契嘛
	/*
	 * 思路：跳n级台阶相当于n-1和n-2级台阶的和
       原因：n级台阶就相当于n-1级再跳一次一阶的和n-2级再跳一次2阶的
	 */
	
	public static  int JumpFloor(int target) {
		if (target==0|| target==1) {
			return 1;
		}else if (target==2) {
			return 2;
		}
		
		int  one=1;
		int two=2;
		int result=0;
		for (int i =3 ; i<=target;i++) {                      //这里i必须是3，因为1，阶时已经确定了，必须要大于3
			result=one+two;
			one=two;
			two=result;
		}
		return result;
    }
}
